using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._CrimeAnalysisandSafetyTools._CellPhoneAnalysis
{
    /// <summary>
    /// <para>Cell Phone Records To Feature Class</para>
    /// <para>Imports cell phone records from wireless network providers and associates those records with a cell site and sector feature classes as generated by the Cell Site Records To Feature Class tool based on identifier fields.</para>
    /// <para>从无线网络提供商导入移动电话记录，并将这些记录与蜂窝基站记录转要素类工具基于标识符字段生成的蜂窝基站和扇区要素类相关联。</para>
    /// </summary>    
    [DisplayName("Cell Phone Records To Feature Class")]
    public class CellPhoneRecordsToFeatureClass : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public CellPhoneRecordsToFeatureClass()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_in_table">
        /// <para>Input Phone Records Table</para>
        /// <para>The input table containing call records or phone data event records provided by the wireless network provider.</para>
        /// <para>包含无线网络提供商提供的呼叫记录或电话数据事件记录的输入表。</para>
        /// </param>
        /// <param name="_in_site_features">
        /// <para>Input Cell Site Points</para>
        /// <para>The feature class containing cell site points generated by the Cell Site Records to Feature Class tool.</para>
        /// <para>包含由蜂窝站点记录至要素类工具生成的蜂窝站点点的要素类。</para>
        /// </param>
        /// <param name="_in_sector_features">
        /// <para>Input Cell Site Sectors</para>
        /// <para>The feature class containing cell site sectors generated by the Cell Site Records to Feature Class tool.</para>
        /// <para>包含由蜂窝站点记录至要素类工具生成的蜂窝站点扇区的要素类。</para>
        /// </param>
        /// <param name="_out_site_feature_class">
        /// <para>Output Phone Record Site Points</para>
        /// <para><xdoc>
        ///   <para>The point feature class containing phone record site points.</para>
        ///   <para>One point will be generated per phone record linked to cell site points.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>包含电话记录站点点的点要素类。</para>
        ///   <para>链接到蜂窝基站点的每个电话记录将生成一个点。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_out_sector_feature_class">
        /// <para>Output Phone Record Sectors</para>
        /// <para><xdoc>
        ///   <para>The polygon feature class containing phone record sectors.</para>
        ///   <para>One sector polygon will be generated per phone record linked to cell site sectors.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>包含电话记录扇区的面要素类。</para>
        ///   <para>链接到蜂窝基站扇区的每条电话记录将生成一个扇区多边形。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_id_fields">
        /// <para>Cell Sector ID Fields</para>
        /// <para><xdoc>
        ///   <para>Specifies the unique ID field type and the fields that will be added to the output feature.</para>
        ///   <para>Use the Unique ID type when the Input Phone Records Table parameter value has a unique identifier for all cell sector antennas. Use a combination of other ID Type values when the Input Phone Records Table parameter value does not contain a universal unique identifier for all cell sector antennas.</para>
        ///   <para></para>
        ///   <bulletList>
        ///     <bullet_item>ID Type—The field name to be included in the output feature classes.</bullet_item><para/>
        ///     <bullet_item>Field—The name of the fields that uniquely identify the cell sector antennas. These will be added to the output feature class.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>ID Type options are as follows:</para>
        ///   <bulletList>
        ///     <bullet_item>Unique ID—Uniquely identifies a cell sector antenna</bullet_item><para/>
        ///     <bullet_item>Site ID—Uniquely identifies a cell site</bullet_item><para/>
        ///     <bullet_item>Sector ID—Uniquely identifies a cell sector</bullet_item><para/>
        ///     <bullet_item>Switch ID—Uniquely identifies a wireless network switch</bullet_item><para/>
        ///     <bullet_item>LAC ID—Uniquely identifies the Location Area Code</bullet_item><para/>
        ///     <bullet_item>Cascade ID—Uniquely identifies the sector in the wireless network cascade</bullet_item><para/>
        ///     <bullet_item>Cell ID—Identifies the sector within an Location Area Code</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定唯一 ID 字段类型以及将添加到输出要素的字段。</para>
        ///   <para>当输入电话记录表参数值具有所有蜂窝扇区天线的唯一标识符时，请使用唯一 ID 类型。当输入电话记录表参数值不包含所有小区扇区天线的通用唯一标识符时，请使用其他 ID 类型值的组合。</para>
        ///   <para></para>
        ///   <bulletList>
        ///     <bullet_item>ID 类型 - 要包含在输出要素类中的字段名称。</bullet_item><para/>
        ///     <bullet_item>字段 — 唯一标识蜂窝扇区天线的字段名称。这些要素将添加到输出要素类中。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>ID 类型选项如下：</para>
        ///   <bulletList>
        ///     <bullet_item>唯一 ID — 唯一标识小区扇形天线</bullet_item><para/>
        ///     <bullet_item>站点 ID — 唯一标识蜂窝基站</bullet_item><para/>
        ///     <bullet_item>扇区 ID — 唯一标识像元扇区</bullet_item><para/>
        ///     <bullet_item>交换机 ID — 唯一标识无线网络交换机</bullet_item><para/>
        ///     <bullet_item>LAC ID - 唯一标识位置区号</bullet_item><para/>
        ///     <bullet_item>级联 ID — 唯一标识无线网络级联中的扇区</bullet_item><para/>
        ///     <bullet_item>像元 ID - 标识位置区号中的扇区</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// </param>
        /// <param name="_subscriber_field">
        /// <para>Subscriber ID Field</para>
        /// <para>The field in the input table that contains the phone number or identifier of the subscriber.</para>
        /// <para>输入表中包含订阅者电话号码或标识符的字段。</para>
        /// </param>
        public CellPhoneRecordsToFeatureClass(object _in_table, object _in_site_features, object _in_sector_features, object _out_site_feature_class, object _out_sector_feature_class, object _id_fields, object _subscriber_field)
        {
            this._in_table = _in_table;
            this._in_site_features = _in_site_features;
            this._in_sector_features = _in_sector_features;
            this._out_site_feature_class = _out_site_feature_class;
            this._out_sector_feature_class = _out_sector_feature_class;
            this._id_fields = _id_fields;
            this._subscriber_field = _subscriber_field;
        }
        public override string ToolboxName => "Crime Analysis and Safety Tools";

        public override string ToolName => "Cell Phone Records To Feature Class";

        public override string CallName => "ca.CellPhoneRecordsToFeatureClass";

        public override List<string> AcceptEnvironments => ["MDomain", "MResolution", "MTolerance", "XYDomain", "XYResolution", "XYTolerance", "ZDomain", "ZResolution", "ZTolerance", "autoCommit", "configKeyword", "extent", "geographicTransformations", "maintainAttachments", "outputMFlag", "outputZFlag", "outputZValue", "qualifiedFieldNames", "scratchWorkspace", "workspace"];

        public override object[] ParameterInfo => [_in_table, _in_site_features, _in_sector_features, _out_site_feature_class, _out_sector_feature_class, _id_fields, _subscriber_field, _destination_field, _additional_id_fields, _start_time_field, _duration_field, _end_time_field, _convert_utc.GetGPValue(), _location_x_field, _location_y_field, _location_coordinate_system, _out_call_points];

        /// <summary>
        /// <para>Input Phone Records Table</para>
        /// <para>The input table containing call records or phone data event records provided by the wireless network provider.</para>
        /// <para>包含无线网络提供商提供的呼叫记录或电话数据事件记录的输入表。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Phone Records Table")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_table { get; set; }


        /// <summary>
        /// <para>Input Cell Site Points</para>
        /// <para>The feature class containing cell site points generated by the Cell Site Records to Feature Class tool.</para>
        /// <para>包含由蜂窝站点记录至要素类工具生成的蜂窝站点点的要素类。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Cell Site Points")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_site_features { get; set; }


        /// <summary>
        /// <para>Input Cell Site Sectors</para>
        /// <para>The feature class containing cell site sectors generated by the Cell Site Records to Feature Class tool.</para>
        /// <para>包含由蜂窝站点记录至要素类工具生成的蜂窝站点扇区的要素类。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Cell Site Sectors")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_sector_features { get; set; }


        /// <summary>
        /// <para>Output Phone Record Site Points</para>
        /// <para><xdoc>
        ///   <para>The point feature class containing phone record site points.</para>
        ///   <para>One point will be generated per phone record linked to cell site points.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>包含电话记录站点点的点要素类。</para>
        ///   <para>链接到蜂窝基站点的每个电话记录将生成一个点。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Phone Record Site Points")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _out_site_feature_class { get; set; }


        /// <summary>
        /// <para>Output Phone Record Sectors</para>
        /// <para><xdoc>
        ///   <para>The polygon feature class containing phone record sectors.</para>
        ///   <para>One sector polygon will be generated per phone record linked to cell site sectors.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>包含电话记录扇区的面要素类。</para>
        ///   <para>链接到蜂窝基站扇区的每条电话记录将生成一个扇区多边形。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Phone Record Sectors")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _out_sector_feature_class { get; set; }


        /// <summary>
        /// <para>Cell Sector ID Fields</para>
        /// <para><xdoc>
        ///   <para>Specifies the unique ID field type and the fields that will be added to the output feature.</para>
        ///   <para>Use the Unique ID type when the Input Phone Records Table parameter value has a unique identifier for all cell sector antennas. Use a combination of other ID Type values when the Input Phone Records Table parameter value does not contain a universal unique identifier for all cell sector antennas.</para>
        ///   <para></para>
        ///   <bulletList>
        ///     <bullet_item>ID Type—The field name to be included in the output feature classes.</bullet_item><para/>
        ///     <bullet_item>Field—The name of the fields that uniquely identify the cell sector antennas. These will be added to the output feature class.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>ID Type options are as follows:</para>
        ///   <bulletList>
        ///     <bullet_item>Unique ID—Uniquely identifies a cell sector antenna</bullet_item><para/>
        ///     <bullet_item>Site ID—Uniquely identifies a cell site</bullet_item><para/>
        ///     <bullet_item>Sector ID—Uniquely identifies a cell sector</bullet_item><para/>
        ///     <bullet_item>Switch ID—Uniquely identifies a wireless network switch</bullet_item><para/>
        ///     <bullet_item>LAC ID—Uniquely identifies the Location Area Code</bullet_item><para/>
        ///     <bullet_item>Cascade ID—Uniquely identifies the sector in the wireless network cascade</bullet_item><para/>
        ///     <bullet_item>Cell ID—Identifies the sector within an Location Area Code</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定唯一 ID 字段类型以及将添加到输出要素的字段。</para>
        ///   <para>当输入电话记录表参数值具有所有蜂窝扇区天线的唯一标识符时，请使用唯一 ID 类型。当输入电话记录表参数值不包含所有小区扇区天线的通用唯一标识符时，请使用其他 ID 类型值的组合。</para>
        ///   <para></para>
        ///   <bulletList>
        ///     <bullet_item>ID 类型 - 要包含在输出要素类中的字段名称。</bullet_item><para/>
        ///     <bullet_item>字段 — 唯一标识蜂窝扇区天线的字段名称。这些要素将添加到输出要素类中。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>ID 类型选项如下：</para>
        ///   <bulletList>
        ///     <bullet_item>唯一 ID — 唯一标识小区扇形天线</bullet_item><para/>
        ///     <bullet_item>站点 ID — 唯一标识蜂窝基站</bullet_item><para/>
        ///     <bullet_item>扇区 ID — 唯一标识像元扇区</bullet_item><para/>
        ///     <bullet_item>交换机 ID — 唯一标识无线网络交换机</bullet_item><para/>
        ///     <bullet_item>LAC ID - 唯一标识位置区号</bullet_item><para/>
        ///     <bullet_item>级联 ID — 唯一标识无线网络级联中的扇区</bullet_item><para/>
        ///     <bullet_item>像元 ID - 标识位置区号中的扇区</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Cell Sector ID Fields")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _id_fields { get; set; }


        /// <summary>
        /// <para>Subscriber ID Field</para>
        /// <para>The field in the input table that contains the phone number or identifier of the subscriber.</para>
        /// <para>输入表中包含订阅者电话号码或标识符的字段。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Subscriber ID Field")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _subscriber_field { get; set; }


        /// <summary>
        /// <para>Destination Phone Number Field</para>
        /// <para>The field in the input table that contains the phone number or identifier of the callee.</para>
        /// <para>输入表中包含被叫方的电话号码或标识符的字段。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Destination Phone Number Field")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _destination_field { get; set; } = null;


        /// <summary>
        /// <para>Additional Cell Sector ID Fields</para>
        /// <para><xdoc>
        ///   <para>Specifies the additional unique ID field type and the fields that will be added to the output feature.</para>
        ///   <para>Use the Unique ID type when the Input Phone Records Table parameter value has a unique identifier for all cell sector antennas. Use a combination of other ID Type values when the Input Phone Records Table parameter value does not contain a universal unique identifier for all cell sector antennas.</para>
        ///   <bulletList>
        ///     <bullet_item>ID Type—The field name to be included in the output feature classes.</bullet_item><para/>
        ///     <bullet_item>Field—The name of the fields that uniquely identify the cell sector antennas. These will be added to the output feature class.</bullet_item><para/>
        ///   </bulletList>
        ///   <para>ID Type options are as follows:</para>
        ///   <bulletList>
        ///     <bullet_item>Unique ID—Uniquely identifies a cell sector antenna</bullet_item><para/>
        ///     <bullet_item>Site ID—Uniquely identifies a cell site</bullet_item><para/>
        ///     <bullet_item>Sector ID—Uniquely identifies a cell sector</bullet_item><para/>
        ///     <bullet_item>Switch ID—Uniquely identifies a wireless network switch</bullet_item><para/>
        ///     <bullet_item>LAC ID—Uniquely identifies the Location Area Code</bullet_item><para/>
        ///     <bullet_item>Cascade ID—Uniquely identifies the sector in the wireless network cascade</bullet_item><para/>
        ///     <bullet_item>Cell ID—Identifies the sector within an Location Area Code</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定其他唯一 ID 字段类型以及将添加到输出要素的字段。</para>
        ///   <para>当输入电话记录表参数值具有所有蜂窝扇区天线的唯一标识符时，请使用唯一 ID 类型。当输入电话记录表参数值不包含所有小区扇区天线的通用唯一标识符时，请使用其他 ID 类型值的组合。</para>
        ///   <bulletList>
        ///     <bullet_item>ID 类型 - 要包含在输出要素类中的字段名称。</bullet_item><para/>
        ///     <bullet_item>字段 — 唯一标识蜂窝扇区天线的字段名称。这些要素将添加到输出要素类中。</bullet_item><para/>
        ///   </bulletList>
        ///   <para>ID 类型选项如下：</para>
        ///   <bulletList>
        ///     <bullet_item>唯一 ID — 唯一标识小区扇形天线</bullet_item><para/>
        ///     <bullet_item>站点 ID — 唯一标识蜂窝基站</bullet_item><para/>
        ///     <bullet_item>扇区 ID — 唯一标识像元扇区</bullet_item><para/>
        ///     <bullet_item>交换机 ID — 唯一标识无线网络交换机</bullet_item><para/>
        ///     <bullet_item>LAC ID - 唯一标识位置区号</bullet_item><para/>
        ///     <bullet_item>级联 ID — 唯一标识无线网络级联中的扇区</bullet_item><para/>
        ///     <bullet_item>像元 ID - 标识位置区号中的扇区</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Additional Cell Sector ID Fields")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _additional_id_fields { get; set; } = null;


        /// <summary>
        /// <para>Start Date and Time Field</para>
        /// <para>The field in the input table that contains the start date and time field of the phone call or data event.</para>
        /// <para>输入表中包含电话呼叫或数据事件的开始日期和时间字段的字段。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Start Date and Time Field")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _start_time_field { get; set; } = null;


        /// <summary>
        /// <para>Duration Field</para>
        /// <para>The field in the input table that contains the duration of the phone call in seconds.</para>
        /// <para>输入表中包含电话呼叫持续时间（以秒为单位）的字段。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Duration Field")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _duration_field { get; set; } = null;


        /// <summary>
        /// <para>End Date and Time Field</para>
        /// <para>The field in the input table that contains the end date and time of the phone call or data event.</para>
        /// <para>输入表中包含电话呼叫或数据事件的结束日期和时间的字段。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("End Date and Time Field")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _end_time_field { get; set; } = null;


        /// <summary>
        /// <para>Convert UTC Dates to Local Time Zone</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the start and end date and time of the input records will be converted to the time zone of the local system or will remain in coordinated universal time (UTC).</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The start and end date and time of the input records will be converted from UTC to the time zone of the local system.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The start and end date and time will not be converted. This is the default.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定输入记录的开始和结束日期和时间是转换为本地系统的时区，还是保持协调世界时 （UTC）。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 输入记录的开始和结束日期和时间将从 UTC 转换为本地系统的时区。</bullet_item><para/>
        ///     <bullet_item>未选中—不会转换开始日期和结束日期和时间。这是默认设置。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Convert UTC Dates to Local Time Zone")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _convert_utc_value _convert_utc { get; set; } = _convert_utc_value._false;

        public enum _convert_utc_value
        {
            /// <summary>
            /// <para>CONVERT</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("CONVERT")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_CONVERT</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_CONVERT")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Estimated Phone Location X Field</para>
        /// <para>The field in the input table that contains the x-coordinate of the estimated phone location as provided by the wireless network provider.</para>
        /// <para>输入表中包含无线网络提供商提供的估计电话位置的 x 坐标的字段。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Estimated Phone Location X Field")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _location_x_field { get; set; } = null;


        /// <summary>
        /// <para>Estimated Phone Location Y Field</para>
        /// <para>The field in the input table that contains the y-coordinate of the estimated phone location as provided by the wireless network provider.</para>
        /// <para>输入表中包含无线网络提供商提供的估计电话位置的 y 坐标的字段。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Estimated Phone Location Y Field")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _location_y_field { get; set; } = null;


        /// <summary>
        /// <para>Estimated Phone Location Coordinate System</para>
        /// <para>The estimated phone location coordinate system of the x,y-coordinates. The default coordinate system is WGS84.</para>
        /// <para>x，y 坐标的估计电话位置坐标系。默认坐标系为 WGS84。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Estimated Phone Location Coordinate System")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _location_coordinate_system { get; set; } = null;


        /// <summary>
        /// <para>Output Estimated Call Points</para>
        /// <para>The point feature class containing the estimated call locations as provided by the wireless network provider.</para>
        /// <para>包含无线网络提供商提供的估计呼叫位置的点要素类。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Estimated Call Points")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _out_call_points { get; set; } = null;


        public CellPhoneRecordsToFeatureClass SetEnv(object MDomain = null, object MResolution = null, object MTolerance = null, object XYDomain = null, object XYResolution = null, object XYTolerance = null, object ZDomain = null, object ZResolution = null, object ZTolerance = null, int? autoCommit = null, object configKeyword = null, object extent = null, object geographicTransformations = null, object outputMFlag = null, object outputZFlag = null, object outputZValue = null, bool? qualifiedFieldNames = null, object scratchWorkspace = null, object workspace = null)
        {
            base.SetEnv(MDomain: MDomain, MResolution: MResolution, MTolerance: MTolerance, XYDomain: XYDomain, XYResolution: XYResolution, XYTolerance: XYTolerance, ZDomain: ZDomain, ZResolution: ZResolution, ZTolerance: ZTolerance, autoCommit: autoCommit, configKeyword: configKeyword, extent: extent, geographicTransformations: geographicTransformations, outputMFlag: outputMFlag, outputZFlag: outputZFlag, outputZValue: outputZValue, qualifiedFieldNames: qualifiedFieldNames, scratchWorkspace: scratchWorkspace, workspace: workspace);
            return this;
        }

    }

}